package com.fitso.model.calculator;

import com.fitso.model.bean.Body;
import com.fitso.model.bean.measure.energy.Energy;
import com.fitso.model.bean.measure.mass.Mass;

public interface BodyCalculator {

	/**
	 * Calculates BMI
	 * 
	 * @return
	 */
	public abstract Double calculateBodyMassIndex(Body body);

	/**
	 * Amount<Mass> (which contains a range of values) that represents the lower
	 * and upper ideal weight boundaries
	 * 
	 * @return ideal min and max weight
	 */
	public abstract Mass calculateIdealWeight(Body body);

	/**
	 * Basal Metabolic Rate: Most of the body's energy, about 60-70%, goes to
	 * supporting the ongoing metabolic work of the body's cells. This includes
	 * such activities as heart beat, respiration and maintaining body
	 * temperature. This is the minimum amount of energy required to maintain
	 * metabolic activity.
	 * 
	 * Calculations: Male: 66 + (13.7 * {weight in Kg}) + (5 * {height in cm}) -
	 * (6.8 * age) Female: 655 + (9,6 8 {weight in Kg}) + (1.8 * {height}) -
	 * (4.7 * age)
	 * 
	 * @return base expenditure of energy
	 */
	public abstract Energy calculateBasalMetabolicRate(Body body);

	/**
	 * Total Daily Calorie Needs:
	 * 
	 * @return
	 */
	public abstract Energy calculateTotalDailyEnergyNeeds(Body body);

}